home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / include / layout / nsCSSStruct.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  16KB  |  611 lines

  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4.  *
  5.  * The contents of this file are subject to the Mozilla Public License Version
  6.  * 1.1 (the "License"); you may not use this file except in compliance with
  7.  * the License. You may obtain a copy of the License at
  8.  * http://www.mozilla.org/MPL/
  9.  *
  10.  * Software distributed under the License is distributed on an "AS IS" basis,
  11.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12.  * for the specific language governing rights and limitations under the
  13.  * License.
  14.  *
  15.  * The Original Code is mozilla.org code.
  16.  *
  17.  * The Initial Developer of the Original Code is
  18.  * Netscape Communications Corporation.
  19.  * Portions created by the Initial Developer are Copyright (C) 1998
  20.  * the Initial Developer. All Rights Reserved.
  21.  *
  22.  * Contributor(s):
  23.  *   Daniel Glazman <glazman@netscape.com>
  24.  *
  25.  * Alternatively, the contents of this file may be used under the terms of
  26.  * either of the GNU General Public License Version 2 or later (the "GPL"),
  27.  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  28.  * in which case the provisions of the GPL or the LGPL are applicable instead
  29.  * of those above. If you wish to allow use of your version of this file only
  30.  * under the terms of either the GPL or the LGPL, and not to allow others to
  31.  * use your version of this file under the terms of the MPL, indicate your
  32.  * decision by deleting the provisions above and replace them with the notice
  33.  * and other provisions required by the GPL or the LGPL. If you do not delete
  34.  * the provisions above, a recipient may use your version of this file under
  35.  * the terms of any one of the MPL, the GPL or the LGPL.
  36.  *
  37.  * ***** END LICENSE BLOCK ***** */
  38. #ifndef nsCSSStruct_h___
  39. #define nsCSSStruct_h___
  40.  
  41. #include "nsCSSValue.h"
  42. #include <stdio.h>
  43.  
  44. struct nsCSSStruct {
  45.   // EMPTY on purpose.  ABSTRACT with no virtuals (typedef void nsCSSStruct?)
  46. };
  47.  
  48. // We use the nsCSS* structures for storing nsCSSDeclaration's
  49. // *temporary* data during parsing and modification.  (They are too big
  50. // for permanent storage.)  We also use them for nsRuleData, with some
  51. // additions of things that the style system must cascade, but that
  52. // aren't CSS properties.  Thus we use typedefs and inheritance
  53. // (forwards, when the rule data needs extra data) to make the rule data
  54. // structs from the declaration structs.
  55. // NOTE:  For compilation speed, this typedef also appears in nsRuleNode.h
  56. typedef nsCSSStruct nsRuleDataStruct;
  57.  
  58.  
  59. struct nsCSSFont : public nsCSSStruct {
  60.   nsCSSFont(void);
  61.   nsCSSFont(const nsCSSFont& aCopy);
  62.   ~nsCSSFont(void);
  63. #ifdef DEBUG
  64.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  65. #endif
  66.  
  67.   nsCSSValue mFamily;
  68.   nsCSSValue mStyle;
  69.   nsCSSValue mVariant;
  70.   nsCSSValue mWeight;
  71.   nsCSSValue mSize;
  72.   nsCSSValue mSizeAdjust; // NEW
  73.   nsCSSValue mStretch; // NEW
  74. };
  75.  
  76. struct nsRuleDataFont : public nsCSSFont {
  77.   PRBool mFamilyFromHTML; // Is the family from an HTML FONT element
  78. };
  79.  
  80. // Prefer nsCSSValue::Array for lists of fixed size.
  81. struct nsCSSValueList {
  82.   nsCSSValueList(void);
  83.   nsCSSValueList(const nsCSSValueList& aCopy);
  84.   ~nsCSSValueList(void);
  85.  
  86.   static PRBool Equal(nsCSSValueList* aList1, nsCSSValueList* aList2);
  87.  
  88.   nsCSSValue      mValue;
  89.   nsCSSValueList* mNext;
  90. };
  91.  
  92. struct nsCSSColor : public nsCSSStruct  {
  93.   nsCSSColor(void);
  94.   nsCSSColor(const nsCSSColor& aCopy);
  95.   ~nsCSSColor(void);
  96. #ifdef DEBUG
  97.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  98. #endif
  99.  
  100.   nsCSSValue      mColor;
  101.   nsCSSValue      mBackColor;
  102.   nsCSSValue      mBackImage;
  103.   nsCSSValue      mBackRepeat;
  104.   nsCSSValue      mBackAttachment;
  105.   nsCSSValue      mBackPositionX;
  106.   nsCSSValue      mBackPositionY;
  107.   nsCSSValue      mBackClip;
  108.   nsCSSValue      mBackOrigin;
  109.   nsCSSValue      mBackInlinePolicy;
  110. };
  111.  
  112. struct nsRuleDataColor : public nsCSSColor {
  113. };
  114.  
  115. // Should be replaced with nsCSSValueList and nsCSSValue::Array.
  116. struct nsCSSShadow {
  117.   nsCSSShadow(void);
  118.   nsCSSShadow(const nsCSSShadow& aCopy);
  119.   ~nsCSSShadow(void);
  120.  
  121.   static PRBool Equal(nsCSSShadow* aList1, nsCSSShadow* aList2);
  122.  
  123.   nsCSSValue mColor;
  124.   nsCSSValue mXOffset;
  125.   nsCSSValue mYOffset;
  126.   nsCSSValue mRadius;
  127.   nsCSSShadow*  mNext;
  128. };
  129.  
  130. struct nsCSSText : public nsCSSStruct  {
  131.   nsCSSText(void);
  132.   nsCSSText(const nsCSSText& aCopy);
  133.   ~nsCSSText(void);
  134.  
  135. #ifdef DEBUG
  136.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  137. #endif
  138.  
  139.   nsCSSValue mWordSpacing;
  140.   nsCSSValue mLetterSpacing;
  141.   nsCSSValue mVerticalAlign;
  142.   nsCSSValue mTextTransform;
  143.   nsCSSValue mTextAlign;
  144.   nsCSSValue mTextIndent;
  145.   nsCSSValue mDecoration;
  146.   nsCSSShadow* mTextShadow; // NEW
  147.   nsCSSValue mUnicodeBidi;  // NEW
  148.   nsCSSValue mLineHeight;
  149.   nsCSSValue mWhiteSpace;
  150. };
  151.  
  152. struct nsRuleDataText : public nsCSSText {
  153. };
  154.  
  155. struct nsCSSRect {
  156.   nsCSSRect(void);
  157.   nsCSSRect(const nsCSSRect& aCopy);
  158.   ~nsCSSRect();
  159. #ifdef DEBUG
  160.   void List(FILE* out = 0, nsCSSProperty aPropID = eCSSProperty_UNKNOWN, PRInt32 aIndent = 0) const;
  161.   void List(FILE* out, PRInt32 aIndent, const nsCSSProperty aTRBL[]) const;
  162. #endif
  163.  
  164.   PRBool operator==(const nsCSSRect& aOther) const {
  165.     return mTop == aOther.mTop &&
  166.            mRight == aOther.mRight &&
  167.            mBottom == aOther.mBottom &&
  168.            mLeft == aOther.mLeft;
  169.   }
  170.  
  171.   PRBool operator!=(const nsCSSRect& aOther) const {
  172.     return mTop != aOther.mTop ||
  173.            mRight != aOther.mRight ||
  174.            mBottom != aOther.mBottom ||
  175.            mLeft != aOther.mLeft;
  176.   }
  177.  
  178.   void SetAllSidesTo(const nsCSSValue& aValue);
  179.  
  180.   void Reset() {
  181.     mTop.Reset();
  182.     mRight.Reset();
  183.     mBottom.Reset();
  184.     mLeft.Reset();
  185.   }
  186.  
  187.   PRBool HasValue() const {
  188.     return
  189.       mTop.GetUnit() != eCSSUnit_Null ||
  190.       mRight.GetUnit() != eCSSUnit_Null ||
  191.       mBottom.GetUnit() != eCSSUnit_Null ||
  192.       mLeft.GetUnit() != eCSSUnit_Null;
  193.   }
  194.   
  195.   nsCSSValue mTop;
  196.   nsCSSValue mRight;
  197.   nsCSSValue mBottom;
  198.   nsCSSValue mLeft;
  199.  
  200.   typedef nsCSSValue nsCSSRect::*side_type;
  201.   static const side_type sides[4];
  202. };
  203.  
  204. MOZ_DECL_CTOR_COUNTER(nsCSSValuePair)
  205.  
  206. struct nsCSSValuePair {
  207.   nsCSSValuePair()
  208.   {
  209.     MOZ_COUNT_CTOR(nsCSSValuePair);
  210.   }
  211.   nsCSSValuePair(const nsCSSValuePair& aCopy)
  212.     : mXValue(aCopy.mXValue),
  213.       mYValue(aCopy.mYValue)
  214.   { 
  215.     MOZ_COUNT_CTOR(nsCSSValuePair);
  216.   }
  217.   ~nsCSSValuePair()
  218.   {
  219.     MOZ_COUNT_DTOR(nsCSSValuePair);
  220.   }
  221.  
  222.   PRBool operator==(const nsCSSValuePair& aOther) const {
  223.     return mXValue == aOther.mXValue &&
  224.            mYValue == aOther.mYValue;
  225.   }
  226.  
  227.   PRBool operator!=(const nsCSSValuePair& aOther) const {
  228.     return mXValue != aOther.mXValue ||
  229.            mYValue != aOther.mYValue;
  230.   }
  231.  
  232.   void SetBothValuesTo(const nsCSSValue& aValue) {
  233.     mXValue = aValue;
  234.     mYValue = aValue;
  235.   }
  236.  
  237. #ifdef DEBUG
  238.   void AppendToString(nsAString& aString, nsCSSProperty aPropName) const;
  239. #endif
  240.   
  241.   nsCSSValue mXValue;
  242.   nsCSSValue mYValue;
  243. };
  244.  
  245. struct nsCSSValueListRect {
  246.   nsCSSValueListRect(void);
  247.   nsCSSValueListRect(const nsCSSValueListRect& aCopy);
  248.   ~nsCSSValueListRect();
  249. #ifdef DEBUG
  250.   void List(FILE* out = 0, nsCSSProperty aPropID = eCSSProperty_UNKNOWN, PRInt32 aIndent = 0) const;
  251.   void List(FILE* out, PRInt32 aIndent, const nsCSSProperty aTRBL[]) const;
  252. #endif
  253.  
  254.   nsCSSValueList* mTop;
  255.   nsCSSValueList* mRight;
  256.   nsCSSValueList* mBottom;
  257.   nsCSSValueList* mLeft;
  258.  
  259.   typedef nsCSSValueList* nsCSSValueListRect::*side_type;
  260.   static const side_type sides[4];
  261. };
  262.  
  263. struct nsCSSDisplay : public nsCSSStruct  {
  264.   nsCSSDisplay(void);
  265.   nsCSSDisplay(const nsCSSDisplay& aCopy);
  266.   ~nsCSSDisplay(void);
  267.  
  268. #ifdef DEBUG
  269.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  270. #endif
  271.  
  272.   nsCSSValue mDirection;
  273.   nsCSSValue mDisplay;
  274.   nsCSSValue mBinding;
  275.   nsCSSValue mAppearance;
  276.   nsCSSValue mPosition;
  277.   nsCSSValue mFloat;
  278.   nsCSSValue mClear;
  279.   nsCSSRect  mClip;
  280.   nsCSSValue mOverflowX;
  281.   nsCSSValue mOverflowY;
  282.   nsCSSValue mVisibility;
  283.   nsCSSValue mOpacity;
  284.  
  285.   // temp fix for bug 24000 
  286.   nsCSSValue mBreakBefore;
  287.   nsCSSValue mBreakAfter;
  288.   // end temp fix
  289. };
  290.  
  291. struct nsRuleDataDisplay : public nsCSSDisplay {
  292.   nsCSSValue mLang;
  293. };
  294.  
  295. struct nsCSSMargin : public nsCSSStruct  {
  296.   nsCSSMargin(void);
  297.   nsCSSMargin(const nsCSSMargin& aCopy);
  298.   ~nsCSSMargin(void);
  299.  
  300. #ifdef DEBUG
  301.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  302. #endif
  303.  
  304.   nsCSSRect   mMargin;
  305.   nsCSSValue  mMarginStart;
  306.   nsCSSValue  mMarginEnd;
  307.   nsCSSValue  mMarginLeftLTRSource;
  308.   nsCSSValue  mMarginLeftRTLSource;
  309.   nsCSSValue  mMarginRightLTRSource;
  310.   nsCSSValue  mMarginRightRTLSource;
  311.   nsCSSRect   mPadding;
  312.   nsCSSValue  mPaddingStart;
  313.   nsCSSValue  mPaddingEnd;
  314.   nsCSSValue  mPaddingLeftLTRSource;
  315.   nsCSSValue  mPaddingLeftRTLSource;
  316.   nsCSSValue  mPaddingRightLTRSource;
  317.   nsCSSValue  mPaddingRightRTLSource;
  318.   nsCSSRect   mBorderWidth;
  319.   nsCSSRect   mBorderColor;
  320.   nsCSSValueListRect mBorderColors;
  321.   nsCSSRect   mBorderStyle;
  322.   nsCSSRect   mBorderRadius;  // (extension)
  323.   nsCSSValue  mOutlineWidth;
  324.   nsCSSValue  mOutlineColor;
  325.   nsCSSValue  mOutlineStyle;
  326.   nsCSSValue  mOutlineOffset;
  327.   nsCSSRect   mOutlineRadius; // (extension)
  328.   nsCSSValue  mFloatEdge; // NEW
  329. };
  330.  
  331. struct nsRuleDataMargin : public nsCSSMargin {
  332. };
  333.  
  334. struct nsCSSPosition : public nsCSSStruct  {
  335.   nsCSSPosition(void);
  336.   nsCSSPosition(const nsCSSPosition& aCopy);
  337.   ~nsCSSPosition(void);
  338.  
  339. #ifdef DEBUG
  340.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  341. #endif
  342.  
  343.   nsCSSValue  mWidth;
  344.   nsCSSValue  mMinWidth;
  345.   nsCSSValue  mMaxWidth;
  346.   nsCSSValue  mHeight;
  347.   nsCSSValue  mMinHeight;
  348.   nsCSSValue  mMaxHeight;
  349.   nsCSSValue  mBoxSizing; // NEW
  350.   nsCSSRect   mOffset;
  351.   nsCSSValue  mZIndex;
  352. };
  353.  
  354. struct nsRuleDataPosition : public nsCSSPosition {
  355. };
  356.  
  357. struct nsCSSList : public nsCSSStruct  {
  358.   nsCSSList(void);
  359.   nsCSSList(const nsCSSList& aCopy);
  360.   ~nsCSSList(void);
  361.  
  362. #ifdef DEBUG
  363.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  364. #endif
  365.  
  366.   nsCSSValue mType;
  367.   nsCSSValue mImage;
  368.   nsCSSValue mPosition;
  369.   nsCSSRect  mImageRegion;
  370. };
  371.  
  372. struct nsRuleDataList : public nsCSSList {
  373. };
  374.  
  375. struct nsCSSTable : public nsCSSStruct  { // NEW
  376.   nsCSSTable(void);
  377.   nsCSSTable(const nsCSSTable& aCopy);
  378.   ~nsCSSTable(void);
  379.  
  380. #ifdef DEBUG
  381.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  382. #endif
  383.  
  384.   nsCSSValue mBorderCollapse;
  385.   nsCSSValuePair mBorderSpacing;
  386.   nsCSSValue mCaptionSide;
  387.   nsCSSValue mEmptyCells;
  388.   
  389.   nsCSSValue mLayout;
  390.   nsCSSValue mFrame; // Not mappable via CSS, only using HTML4 table attrs.
  391.   nsCSSValue mRules; // Not mappable via CSS, only using HTML4 table attrs.
  392.   nsCSSValue mSpan; // Not mappable via CSS, only using HTML4 table attrs.
  393.   nsCSSValue mCols; // Not mappable via CSS, only using HTML4 table attrs.
  394. };
  395.  
  396. struct nsRuleDataTable : public nsCSSTable {
  397. };
  398.  
  399. struct nsCSSBreaks : public nsCSSStruct  { // NEW
  400.   nsCSSBreaks(void);
  401.   nsCSSBreaks(const nsCSSBreaks& aCopy);
  402.   ~nsCSSBreaks(void);
  403.  
  404. #ifdef DEBUG
  405.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  406. #endif
  407.  
  408.   nsCSSValue mOrphans;
  409.   nsCSSValue mWidows;
  410.   nsCSSValue mPage;
  411.   // temp fix for bug 24000 
  412.   //nsCSSValue mPageBreakAfter;
  413.   //nsCSSValue mPageBreakBefore;
  414.   nsCSSValue mPageBreakInside;
  415. };
  416.  
  417. struct nsRuleDataBreaks : public nsCSSBreaks {
  418. };
  419.  
  420. struct nsCSSPage : public nsCSSStruct  { // NEW
  421.   nsCSSPage(void);
  422.   nsCSSPage(const nsCSSPage& aCopy);
  423.   ~nsCSSPage(void);
  424.  
  425. #ifdef DEBUG
  426.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  427. #endif
  428.  
  429.   nsCSSValue mMarks;
  430.   nsCSSValuePair mSize;
  431. };
  432.  
  433. struct nsRuleDataPage : public nsCSSPage {
  434. };
  435.  
  436. // Should be replaced with nsCSSValueList and nsCSSValue::Array.
  437. struct nsCSSCounterData {
  438.   nsCSSCounterData(void);
  439.   nsCSSCounterData(const nsCSSCounterData& aCopy);
  440.   ~nsCSSCounterData(void);
  441.  
  442.   static PRBool Equal(nsCSSCounterData* aList1, nsCSSCounterData* aList2);
  443.  
  444.   nsCSSValue        mCounter;
  445.   nsCSSValue        mValue;
  446.   nsCSSCounterData* mNext;
  447. };
  448.  
  449. // Should be replaced with nsCSSValueList and nsCSSValue::Array.
  450. struct nsCSSQuotes {
  451.   nsCSSQuotes(void);
  452.   nsCSSQuotes(const nsCSSQuotes& aCopy);
  453.   ~nsCSSQuotes(void);
  454.  
  455.   static PRBool Equal(nsCSSQuotes* aList1, nsCSSQuotes* aList2);
  456.  
  457.   nsCSSValue    mOpen;
  458.   nsCSSValue    mClose;
  459.   nsCSSQuotes*  mNext;
  460. };
  461.  
  462. struct nsCSSContent : public nsCSSStruct  {
  463.   nsCSSContent(void);
  464.   nsCSSContent(const nsCSSContent& aCopy);
  465.   ~nsCSSContent(void);
  466.  
  467. #ifdef DEBUG
  468.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  469. #endif
  470.  
  471.   nsCSSValueList*   mContent;
  472.   nsCSSCounterData* mCounterIncrement;
  473.   nsCSSCounterData* mCounterReset;
  474.   nsCSSValue        mMarkerOffset;
  475.   nsCSSQuotes*      mQuotes;
  476. };
  477.  
  478. struct nsRuleDataContent : public nsCSSContent {
  479. };
  480.  
  481. struct nsCSSUserInterface : public nsCSSStruct  { // NEW
  482.   nsCSSUserInterface(void);
  483.   nsCSSUserInterface(const nsCSSUserInterface& aCopy);
  484.   ~nsCSSUserInterface(void);
  485.  
  486. #ifdef DEBUG
  487.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  488. #endif
  489.  
  490.   nsCSSValue      mUserInput;
  491.   nsCSSValue      mUserModify;
  492.   nsCSSValue      mUserSelect;
  493.   nsCSSValue      mUserFocus;
  494.   
  495.   nsCSSValueList* mCursor;
  496.   nsCSSValue      mForceBrokenImageIcon;
  497. };
  498.  
  499. struct nsRuleDataUserInterface : public nsCSSUserInterface {
  500. };
  501.  
  502. struct nsCSSAural : public nsCSSStruct  { // NEW
  503.   nsCSSAural(void);
  504.   nsCSSAural(const nsCSSAural& aCopy);
  505.   ~nsCSSAural(void);
  506.  
  507. #ifdef DEBUG
  508.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  509. #endif
  510.  
  511.   nsCSSValue mAzimuth;
  512.   nsCSSValue mElevation;
  513.   nsCSSValue mCueAfter;
  514.   nsCSSValue mCueBefore;
  515.   nsCSSValue mPauseAfter;
  516.   nsCSSValue mPauseBefore;
  517.   nsCSSValue mPitch;
  518.   nsCSSValue mPitchRange;
  519.   nsCSSValuePair mPlayDuring; // mXValue is URI, mYValue are flags
  520.   nsCSSValue mRichness;
  521.   nsCSSValue mSpeak;
  522.   nsCSSValue mSpeakHeader;
  523.   nsCSSValue mSpeakNumeral;
  524.   nsCSSValue mSpeakPunctuation;
  525.   nsCSSValue mSpeechRate;
  526.   nsCSSValue mStress;
  527.   nsCSSValue mVoiceFamily;
  528.   nsCSSValue mVolume;
  529. };
  530.  
  531. struct nsRuleDataAural : public nsCSSAural {
  532. };
  533.  
  534. struct nsCSSXUL : public nsCSSStruct  {
  535.   nsCSSXUL(void);
  536.   nsCSSXUL(const nsCSSXUL& aCopy);
  537.   ~nsCSSXUL(void);
  538.  
  539. #ifdef DEBUG
  540.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  541. #endif
  542.  
  543.   nsCSSValue  mBoxAlign;
  544.   nsCSSValue  mBoxDirection;
  545.   nsCSSValue  mBoxFlex;
  546.   nsCSSValue  mBoxOrient;
  547.   nsCSSValue  mBoxPack;
  548.   nsCSSValue  mBoxOrdinal;
  549. };
  550.  
  551. struct nsRuleDataXUL : public nsCSSXUL {
  552. };
  553.  
  554. struct nsCSSColumn : public nsCSSStruct  {
  555.   nsCSSColumn(void);
  556.   nsCSSColumn(const nsCSSColumn& aCopy);
  557.   ~nsCSSColumn(void);
  558.  
  559. #ifdef DEBUG
  560.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  561. #endif
  562.  
  563.   nsCSSValue  mColumnCount;
  564.   nsCSSValue  mColumnWidth;
  565.   nsCSSValue  mColumnGap;
  566. };
  567.  
  568. struct nsRuleDataColumn : public nsCSSColumn {
  569. };
  570.  
  571. #ifdef MOZ_SVG
  572. struct nsCSSSVG : public nsCSSStruct {
  573.   nsCSSSVG(void);
  574.   nsCSSSVG(const nsCSSSVG& aCopy);
  575.   ~nsCSSSVG(void);
  576.  
  577. #ifdef DEBUG
  578.   void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
  579. #endif
  580.  
  581.   nsCSSValue mClipPath;
  582.   nsCSSValue mClipRule;
  583.   nsCSSValue mDominantBaseline;
  584.   nsCSSValue mFill;
  585.   nsCSSValue mFillOpacity;
  586.   nsCSSValue mFillRule;
  587.   nsCSSValue mMarkerEnd;
  588.   nsCSSValue mMarkerMid;
  589.   nsCSSValue mMarkerStart;
  590.   nsCSSValue mPointerEvents;
  591.   nsCSSValue mShapeRendering;
  592.   nsCSSValue mStopColor;
  593.   nsCSSValue mStopOpacity;
  594.   nsCSSValue mStroke;
  595.   nsCSSValueList *mStrokeDasharray;
  596.   nsCSSValue mStrokeDashoffset;
  597.   nsCSSValue mStrokeLinecap;
  598.   nsCSSValue mStrokeLinejoin;
  599.   nsCSSValue mStrokeMiterlimit;
  600.   nsCSSValue mStrokeOpacity;
  601.   nsCSSValue mStrokeWidth;
  602.   nsCSSValue mTextAnchor;
  603.   nsCSSValue mTextRendering;
  604. };
  605.  
  606. struct nsRuleDataSVG : public nsCSSSVG {
  607. };
  608. #endif
  609.  
  610. #endif /* nsCSSStruct_h___ */
  611.